<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Eigen: Eigen::PastixLU&lt; MatrixType_, IsStrSym &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="eigendoxy.css" rel="stylesheet" type="text/css">
<!--  -->
<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="Eigen_Silly_Professor_64x64.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname"><a href="http://eigen.tuxfamily.org">Eigen</a>
   &#160;<span id="projectnumber">3.4.90 (git rev 67eeba6e720c5745abc77ae6c92ce0a44aa7b7ae)</span>
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.svg"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classEigen_1_1PastixLU.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="classEigen_1_1PastixLU-members.html">List of all members</a> &#124;
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Eigen::PastixLU&lt; MatrixType_, IsStrSym &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__Sparse__chapter.html">Sparse linear algebra</a> &raquo; <a class="el" href="group__Sparse__Reference.html">Reference</a> &raquo; <a class="el" href="group__Support__modules.html">Support modules</a> &raquo; <a class="el" href="group__PaStiXSupport__Module.html">PaStiXSupport module</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename MatrixType_, bool IsStrSym&gt;<br />
class Eigen::PastixLU&lt; MatrixType_, IsStrSym &gt;</h3>

<p>Interface to the PaStix solver. </p>
<p><a class="el" href="structEigen_1_1Sparse.html">Sparse</a> direct LU solver based on PaStiX library.</p>
<p>This class is used to solve the linear systems A.X = B via the PaStix library. The matrix can be either real or complex, symmetric or not.</p>
<dl class="section see"><dt>See also</dt><dd>TutorialSparseDirectSolvers</dd></dl>
<p>This class is used to solve the linear systems A.X = B with a supernodal LU factorization in the PaStiX library. The matrix A should be squared and nonsingular PaStiX requires that the matrix A has a symmetric structural pattern. This interface can symmetrize the input matrix otherwise. The vectors or matrices X and B can be either dense or sparse.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">MatrixType_</td><td>the type of the sparse matrix A, it must be a SparseMatrix&lt;&gt; </td></tr>
    <tr><td class="paramname">IsStrSym</td><td>Indicates if the input matrix has a symmetric pattern, default is false NOTE : Note that if the analysis and factorization phase are called separately, the input matrix will be symmetrized at each call, hence it is advised to symmetrize the matrix in a end-user program and set <code>IsStrSym</code> to true</td></tr>
  </table>
  </dd>
</dl>
<p>This class follows the <a class="el" href="group__TopicSparseSystems.html#TutorialSparseSolverConcept">sparse solver concept </a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__TopicSparseSystems.html#TutorialSparseSolverConcept">Sparse solver concept</a>, class <a class="el" href="classEigen_1_1SparseLU.html" title="Sparse supernodal LU factorization for general matrices.">SparseLU</a> </dd></dl>
</div>
<p>Inherits Eigen::PastixBase&lt; Derived &gt;.</p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4a9a1dd6668e1757655344e80678e4f5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PastixLU.html#a4a9a1dd6668e1757655344e80678e4f5">analyzePattern</a> (const MatrixType &amp;matrix)</td></tr>
<tr class="separator:a4a9a1dd6668e1757655344e80678e4f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b3142fc7eb7d45df22e36dd35468259"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PastixLU.html#a6b3142fc7eb7d45df22e36dd35468259">compute</a> (const MatrixType &amp;matrix)</td></tr>
<tr class="separator:a6b3142fc7eb7d45df22e36dd35468259"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ac2170d33699b2ff5faf6fc2a669bca"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PastixLU.html#a5ac2170d33699b2ff5faf6fc2a669bca">factorize</a> (const MatrixType &amp;matrix)</td></tr>
<tr class="separator:a5ac2170d33699b2ff5faf6fc2a669bca"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a4a9a1dd6668e1757655344e80678e4f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a9a1dd6668e1757655344e80678e4f5">&#9670;&nbsp;</a></span>analyzePattern()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename MatrixType_ , bool IsStrSym&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classEigen_1_1PastixLU.html">Eigen::PastixLU</a>&lt; MatrixType_, IsStrSym &gt;::analyzePattern </td>
          <td>(</td>
          <td class="paramtype">const MatrixType &amp;&#160;</td>
          <td class="paramname"><em>matrix</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Compute the LU symbolic factorization of <code>matrix</code> using its sparsity pattern. Several ordering methods can be used at this step. See the PaStiX user's manual. The result of this operation can be used with successive matrices having the same pattern as <code>matrix</code> </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1PastixLU.html#a5ac2170d33699b2ff5faf6fc2a669bca">factorize()</a> </dd></dl>

</div>
</div>
<a id="a6b3142fc7eb7d45df22e36dd35468259"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b3142fc7eb7d45df22e36dd35468259">&#9670;&nbsp;</a></span>compute()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename MatrixType_ , bool IsStrSym&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classEigen_1_1PastixLU.html">Eigen::PastixLU</a>&lt; MatrixType_, IsStrSym &gt;::compute </td>
          <td>(</td>
          <td class="paramtype">const MatrixType &amp;&#160;</td>
          <td class="paramname"><em>matrix</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Compute the LU supernodal factorization of <code>matrix</code>. iparm and dparm can be used to tune the PaStiX parameters. see the PaStiX user's manual </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1PastixLU.html#a4a9a1dd6668e1757655344e80678e4f5">analyzePattern()</a> <a class="el" href="classEigen_1_1PastixLU.html#a5ac2170d33699b2ff5faf6fc2a669bca">factorize()</a> </dd></dl>

</div>
</div>
<a id="a5ac2170d33699b2ff5faf6fc2a669bca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ac2170d33699b2ff5faf6fc2a669bca">&#9670;&nbsp;</a></span>factorize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename MatrixType_ , bool IsStrSym&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classEigen_1_1PastixLU.html">Eigen::PastixLU</a>&lt; MatrixType_, IsStrSym &gt;::factorize </td>
          <td>(</td>
          <td class="paramtype">const MatrixType &amp;&#160;</td>
          <td class="paramname"><em>matrix</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Compute the LU supernodal factorization of <code>matrix</code> WARNING The matrix <code>matrix</code> should have the same structural pattern as the same used in the analysis phase. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1PastixLU.html#a4a9a1dd6668e1757655344e80678e4f5">analyzePattern()</a> </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="PaStiXSupport_8h_source.html">PaStiXSupport.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceEigen.html">Eigen</a></li><li class="navelem"><a class="el" href="classEigen_1_1PastixLU.html">PastixLU</a></li>
    <li class="footer">Generated on Thu Apr 21 2022 13:07:56 for Eigen by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
